Welcome to MIPSpro N32 ABI



Welcome to the N32 Web page. This page provides information about MIPS N32 Application Binary Interface (ABI), and tells you everything (at least everything we know at this point) you've always wanted to know about N32. You're probably aware already that N32 is a work in progress.

The information below includes the following topics:

About the N32 ABI

The N32 ABI is a minor variation on the high performance 64-bit ABI. All the performance of the hardware is available to the program and existing 32-bit ABI programs are easily ported. Table 1-1 compares the various ABIs.

UX=1 implies 64-bit registers and also indicates that MIPS3 and MIPS4 instructions are legal. N32 uses 64-bit registers but restricts addresses to 32 bits.

Why We Need a New 32 ABI

The ABI is the set of rules that all binaries must follow in order to run on an SGI system. This includes, for example, object file format, instruction set, data layout, subroutine calling convention, and system call numbers. The ABI is one part of the mechanism that maintains binary compatibility across all SGI platforms.

The new 32-bit ABI takes advantage of the performance-related features and instructions of the newer SGI chips.

N32 Migration Requirements

To implement N32, SGI provides customers with:

  1. A compiler that supports N32.
  2. A 64-bit kernel that supports N32.
  3. N32 versions of each N64 library.

To take advantage of the N32 ABI, our customers must:

  1. Install IRIX 6.2 operating system, compiler, and all N32 libraries.
  2. Rewrite Assembly code to conform to N32 guiidelines.
  3. Prototype C functions that use varargs.
  4. Recompile all the code with the compiler that supports N32. No Makefile changes are needed.

N32 Documentation

The N32 core documentation exists in the IRIX 6.2 version of the N32 ABI Handbook:

Return to the top of this page.


Copyright © 1995, 1996 Silicon Graphics, Inc.